package br.com.guarana.business.model;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 *
 * @author 
 */
@Entity
@Table(name = "parametro")
@NamedQueries({@NamedQuery(name = "Parametro.findParametroAll", query = "SELECT r FROM Parametro r"),
               @NamedQuery(name = "Parametro.findParametroById", query = "SELECT r FROM Parametro r WHERE r.id = :id")})
@SequenceGenerator(name = "parametro_id_seq", sequenceName = "parametro_id_seq", allocationSize = 1)

public class Parametro implements Serializable {
    private static final long serialVersionUID = 1L;
    
    @Id
    @GeneratedValue(generator = "parametro_id_seq", strategy = GenerationType.AUTO)    
    @Column(name = "id", nullable = false)
    private Integer id;
    
    @Column(name = "diretorio_temp", length = 255)
    private String diretorioTemp;
        
    @Column(name = "versao_bd", length = 5)
    private String versaoBd;
    
    
    @Lob
    @Column(name = "logotipo")
    private byte[] logotipo;
    
    @Column(name = "nome_empresa", length = 128)
    private String nomeEmpresa;
    
    @Column(name = "slogan_empresa", length = 128)
    private String sloganEmpresa;
    
    @Column(name = "endereco_completo", length = 255)
    private String enderecoCompleto;
    
    @Column(name = "telefone_completo", length = 30)
    private String telefoneCompleto;        
    
    @Column(name = "sms_conta_account", length = 30)
    private String smsContaAccount;
    
    @Column(name = "sms_codigo_code", length = 30)
    private String smsCodigoCode;
    
    @Column(name = "utiliza_proxy", nullable = false)
    private boolean utilizaProxy;
    
    @Column(name = "proxy_host", length = 50)
    private String proxyHost;
    
    @Column(name = "proxy_porta")
    private Integer proxyPorta;
    
    @Column(name = "proxy_username", length = 128)
    private String proxyUsername;
    
    @Column(name = "proxy_password", length = 128)
    private String proxyPassword;

    @Column(name = "id_sms_contador")
    private Integer idSmsContador;            
    
    @Column(name = "mensagem_padrao_sms", length = 255)
    private String mensagemPadraoSms;
    
    @Transient()
    private transient Date dataAtual; 

    public Parametro() {
    }    

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getDiretorioTemp() {
        return diretorioTemp;
    }

    public void setDiretorioTemp(String diretorioTemp) {
        this.diretorioTemp = diretorioTemp;
    }

    public String getSmsContaAccount() {
        return smsContaAccount;
    }

    public void setSmsContaAccount(String smsContaAccount) {
        this.smsContaAccount = smsContaAccount;
    }

    public String getSmsCodigoCode() {
        return smsCodigoCode;
    }

    public void setSmsCodigoCode(String smsCodigoCode) {
        this.smsCodigoCode = smsCodigoCode;
    }

    public boolean getUtilizaProxy() {
        return utilizaProxy;
    }

    public void setUtilizaProxy(boolean utilizaProxy) {
        this.utilizaProxy = utilizaProxy;
    }

    public String getProxyHost() {
        return proxyHost;
    }

    public void setProxyHost(String proxyHost) {
        this.proxyHost = proxyHost;
    }

    public Integer getProxyPorta() {
        return proxyPorta;
    }

    public void setProxyPorta(Integer proxyPorta) {
        this.proxyPorta = proxyPorta;
    }

    public String getProxyUsername() {
        return proxyUsername;
    }

    public void setProxyUsername(String proxyUsername) {
        this.proxyUsername = proxyUsername;
    }

    public String getProxyPassword() {
        return proxyPassword;
    }

    public void setProxyPassword(String proxyPassword) {
        this.proxyPassword = proxyPassword;
    }

    public String getVersaoBd() {
        return versaoBd;
    }

    public void setVersaoBd(String versaoBd) {
        this.versaoBd = versaoBd;
    }

    public byte[] getLogotipo() {
        return logotipo;
    }

    public void setLogotipo(byte[] logotipo) {
        this.logotipo = logotipo;
    }

    public String getNomeEmpresa() {
        return nomeEmpresa;
    }

    public void setNomeEmpresa(String nomeEmpresa) {
        this.nomeEmpresa = nomeEmpresa;
    }

    public String getSloganEmpresa() {
        return sloganEmpresa;
    }

    public void setSloganEmpresa(String sloganEmpresa) {
        this.sloganEmpresa = sloganEmpresa;
    }

    public String getEnderecoCompleto() {
        return enderecoCompleto;
    }

    public void setEnderecoCompleto(String enderecoCompleto) {
        this.enderecoCompleto = enderecoCompleto;
    }

    public String getTelefoneCompleto() {
        return telefoneCompleto;
    }

    public void setTelefoneCompleto(String telefoneCompleto) {
        this.telefoneCompleto = telefoneCompleto;
    }       

    public Date getDataAtual() {
        return dataAtual;
    }

    public void setDataAtual(Date dataAtual) {
        this.dataAtual = dataAtual;
    }    

    public Integer getIdSmsContador() {
        return idSmsContador;
    }

    public void setIdSmsContador(Integer idSmsContador) {
        this.idSmsContador = idSmsContador;
    }

    public String getMensagemPadraoSms() {
        return mensagemPadraoSms;
    }

    public void setMensagemPadraoSms(String mensagemPadraoSms) {
        this.mensagemPadraoSms = mensagemPadraoSms;
    }    
    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Parametro)) {
            return false;
        }
        Parametro other = (Parametro) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "br.com.guarana.business.model.Parametro[ id=" + id + " ]";
    }
    
}
